<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>KeyCommander - An open source hardware programmable LCD keypad</title>
<link href="styles/main.css" rel="stylesheet" type="text/css" />

<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-21606801-1']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
</script>
</head>

<body>
<div id="container">
    <div id="banner">
    <a href="index.html"><img src="top_image.jpg" width="950" height="200" alt="KeyCommander" border="0" /></a> 
</div>
    <div id="top_menu">
        <ul>
            <li><a href="index.html"><u>Home</u></a></li>
            <li><a href="what.html">What is it</a></li>
            <li><a href="why.html">Why use it</a></li>
            <li><a href="how.html">How does it work</a></li>
            <li><a href="who.html">Who makes it</a></li>
            <li><a href="where.html">Where to get it</a></li>
            <span style="float: right;">
                <li><a href="http://code.google.com/p/keycommander/">Design files</a></li>
            </span>
        </ul>
    </div>
    <div id="left_column">
		<img src="LCD_test_purple.jpg" width="248" height="234" alt="LCD key test" />
        <h2>Status:</h2>
        (3 March 2011)
        <h3>Initial design</h3>
        <p>Please check back soon!</p>
        <br />
        <h2>In Progress:</h2>
        <menu>
            <li type="disc">Developing prototype PCB for further testing</li>
        </menu> 
        <br />
        <h2>Completed:</h2>
        <menu>
            <li type="disc">LCD backlight control</li>
            <li type="disc">LCD graphics control</li>
			<li type="disc">USB enumeration</li>
			<li type="disc">USB data transfer (IN/OUT)</li>
			<li type="disc">HID keyboard functionality</li>
        </menu> 
    </div>
    <div id="main_area">
        <h1> KeyCommander - An open source hardware programmable LCD keypad</h1>
        <p>The KeyCommander is an open source hardware LCD keypad, designed to simplify 
        the use of software that uses many keyboard shortcuts.</p>

        <p>Modern software, particularly professional graphics and CAD software, is full of 
        shortcut combinations which take your focus away from the task at hand. 
        The KeyCommander project aims to simplify your workflow by moving the most commonly 
        used shortcuts to a separate keypad, with automatic switching between layouts in 
        different programs. 
        Fully programmable LCD buttons quickly remind you of the key function in the current application.</p>
        <p>The functionality is similar to the famously expensive &quot;Optimus Maximus&quot; OLED 
        keyboard and &quot;Optimus Aux&quot; OLED keypad (which is not for sale), but all design files 
        are available to customise and improve to your liking.</p>
        
        The key features are: 
        <menu>
        <li type="disc">Open source hardware</li>
        <li type="disc">LCD keys with 64x32 resolution and 64 colour backlight</li>
        <li type="disc">USB bus powered HID device</li>
        <li type="disc">Multiple profiles, stored in onboard memory</li>
        <li type="disc">Automatic profile switching (requires a monitoring program to be running)</li>
        </menu> 
        
        <h2>Open Source Hardware</h2>
        <p>As an open source hardware project, full source code and hardware designs are provided 
        for you to use or modify as you please, as long as modified source code and 
        hardware designs are made available (GPL v3 license).</p>
        <p>Anyone with the appropriate skills is encouraged to contribute to the project and make it 
        better. Project files and technical details are hosted on 
        <a href="http://code.google.com/p/keycommander/">Google Code</a>.</p>
        
        <h2>LCD keys</h2>
        <p>KeyCommander uses backlit LCD keys rather than full colour OLED screens to reduce the cost to
        a more reasonable level, while maintaining the useful functionality of keys with an inbuilt 
        display. As an open source hardware project however, those who can afford OLED keys are free to make the 
        minor changes necessary.</p>
        <p>The LCD diplay built into every key has a resolution of 64x32 pixels, which is sufficient for 
        detailed icons, up to 4 lines of text, or a combination of text and graphics.
        The backlight can be set to any one of 64 colours by mixing 4 brightness levels of red, green, 
        and blue.</p>
        
        <h2>USB bus powered HID device</h2>
        <p>As a USB powered device no inconvenient power adaptor or extra cable is required. 
        <!--This does limit the number of keys to around 16due to the 500mA supply limit of USB bus powered devices.-->
        KeyCommander appears to the operating system as a standard keyboard so no special drivers are needed.</p>
        
        <h2>Multiple Profiles, Onboard Memory</h2>
        <p>Profiles consisting of key functions, LCD images, and backlight colours for each key are
        stored in internal memory for fast switching.
		Each profile can also contain sub-profiles for different tasks within the same program, eg 
		2D/3D modes in CAD software, schematic/PCB modes in electronic design software, or 
		edit/sculpt/vertex paint modes in 3D modelling software.
        </p>
        
        <h2>Automatic Profile Switching</h2>
        <p>By running the application monitoring program, the KeyCommander can automatically switch 
        profiles as the user switches between applications.
        Sub-profiles can be switched manually, or a key combination can be set to change modes in the 
		application when the sub-profile is changed (if the application can change modes with a keyboard shortcut).</p>
        
    </div>
    <div id="footer">
        <p>Copyright &copy; 2011 Daniel Watman. All rights reserved.</p>
    </div>
</div>
</body>
</html>
